package be.ipl.diapero.daoimpl;

import java.util.List;

import javax.ejb.Stateless;

import be.ipl.diapero.dao.PartieDao;
import be.ipl.diapero.domaine.Partie;
import be.ipl.diapero.domaine.Partie.Etat;

@Stateless
@SuppressWarnings("serial")
public class PartieDaoImpl extends DaoImpl<Integer, Partie> implements
		PartieDao {

	@Override
	public List<Partie> listerPartiesEtat(Etat etat) {
		return liste("select p from Partie p where p.etat = ?1", etat);
	}
	
	@Override
    public List<Partie> listerParties() {
        String query = "select p from Partie p where p.etat = ?1 or p.etat = ?2 or p.etat = ?3 or p.etat = ?4 or p.etat = ?5";
        return this.liste(query, Etat.EN_ATTENTE,
                Etat.EN_COURS, Etat.TERMINE, Etat.ANNULEE);
    }

	@Override
	public Partie chargerJoueurs(Partie partie) {
		partie = rechercher(partie.getId());
		partie.getJoueurs().size();
		return partie;
	}

	@Override
	public Partie chargerTours(Partie partie) {
		partie = rechercher(partie.getId());
		partie.getTours().size();
		return partie;
	}

	@Override
	public Partie rechercher(String nom) {
		return recherche("select p from Partie p where nom LIKE ?1", nom);
	}
}
